home *** CD-ROM | disk | FTP | other *** search
/ CD School House 9 / CD School House 9.0 - Wayzata Technology (1994).iso / pc / dos / math / lp100210 / lp100.txt < prev    next >
Text File  |  1989-03-18  |  53KB  |  1,333 lines

  1. ■ LP100
  2.  
  3.     LP100 is a linear programming optimizer developed for either maximizing
  4.     or minimizing small to medium sized mathematical programming problems
  5.     in which all the relationships between variables are linear.  It finds
  6.     a BEST feasible solution to any continuous or all-integer constrained
  7.     optimization problem of this type and reports on the activities and levels
  8.     required to maximize profit or minimize cost.  LP100 also reports on
  9.     alternate optima, shadow prices, and ranges over which the shadow prices
  10.     are valid and also ranges over which profit/cost inputs and right-hand-side
  11.     (RHS) values can vary without altering the solution.
  12.  
  13.     LP100 can use either LOTUS 1-2-3/Symphony spreadsheet files or ASCII
  14.     files for data input.
  15.  
  16.     Output may consist of useful model debugging information such as
  17.     objective function and constraint listings, a condensed matrix map,
  18.     the initial and last tableaux, or all tableaux.
  19.  
  20.     Output can be sent to a printer or to a disk file.  Registered versions
  21.     allow the analysis and solution to be read directly by LOTUS spreadsheets.
  22. ■ INPUT FILE
  23.  
  24.     LP100 uses an ASCII file for data input.  Any text editor or word processor
  25.     that can output unformatted ASCII text may be used.  LOTUS 1-2-3 or
  26.     Symphony (or any 1-2-3 compatible spreadsheet such as VP-Planner) can be
  27.     used for creating the data file, as well.
  28.  
  29.     NOTE: The length of any line should not exceed 2,300 characters.  This is
  30.           approximately 256 spreadsheet columns per row.
  31.  
  32.     A demonstration program, LPDEMO.EXE, is included.
  33.  
  34.     A batch facility is available in LP100.  This allows LP100 to solve up to
  35.     six LP problems per run without the need of using DOS's COMMAND batch
  36.     facility.  Such a file is to include only the LP filenames followed by any
  37.     command line options and should contain no blank lines.  To specify a
  38.     batch file to LP100, precede the filename with an @ on the command line.
  39.     E.g., if the batch file is named BATCHRUN.BLP, use C>LP100 @BATCHRUN.BLP.
  40.  
  41.     NOTE: The @ is not part of the filename.
  42.  
  43.     SEE ALSO: EXAMPLE, SPREADSHEET, LPEDIT.COM, LINE OPTIONS, LPDEMO.EXE
  44. ■ - EXAMPLE
  45.  
  46.     TITLE: An example of an LP100 data file.
  47.     OUTPUT: EXAMPLE.OUT
  48.     LISTING: YES
  49.     MAP: YES
  50.     TABLEAU: YES
  51.     ANALYSIS: YES               * anything after a '*' on a line is a comment
  52.  
  53.     VAR: 3  LTE: 2  GTE: 0  EQU: 1
  54.     FUNCTION: MAX: .185 stock + .090 bond -.150 loan
  55.  
  56.     MxLoan  loan <= 5000        * no coefficient implies coefficient of 1.00
  57.     MxStk   stock <= 4000
  58.     MxCash  stock + bond - loan = 10000
  59.     END:
  60.  
  61.     NOTE: It is not neccesary to use + operators between variables, e.g.,
  62.          ...MAX:  .185 stock  .090 bond   -.150 loan is acceptable, as is
  63.          ...MAX: +.185 stock +.090 bond + -.150 loan.
  64.  
  65.     SEE ALSO: OBJECTIVE FUNCTION, VARIABLES, CONSTRAINTS, SPREADSHEET
  66. ■ STARTING LP100
  67.  
  68.     To give LP100 a go, have LP100.EXE in your PATH and EXAMPLE.LP in the
  69.     current directory, then type:
  70.     C>LP100 EXAMPLE.LP
  71.  
  72.     In just a few seconds it's finished.  Now do (printer on?):
  73.     C>COPY EXAMPLE.LP PRN
  74.  
  75.     ... then do (you may want to advance the printer to the top-of-page):
  76.     C>COPY EXAMPLE.OUT PRN
  77.  
  78.     The file EXAMPLE.LP is the data file that LP100 used and EXAMPLE.OUT is the
  79.     file that LP100 created for the output.
  80.  
  81.     If you do not have a printer, have LPEDIT.COM in your PATH and EXAMPLE.OUT
  82.     in the current directory, then type:
  83.     C>LPEDIT EXAMPLE.OUT
  84.  
  85.  
  86.  
  87.     SEE ALSO: LPEDIT.COM
  88. ■ LINE OPTIONS
  89.  
  90.     LP100 allows the user to override specific switches that may have been
  91.     specified in the LP100 data file by using command line options after the
  92.     LP100 input data file specification.  These command line options are:
  93.  
  94.     /O:filename  specify the output destination
  95.     /I:nn        specify all-integer solution max of nn cutplanes (nn=0 to 99)
  96.     /Z:nn        specify tolerance of zero (nn=.000000000001 to .9)
  97.     /PL:OFF      suppress printer page length codes (page length from 88 to 66)
  98.     /PW:OFF      suppress printer page width code (page width remains 132)
  99.     /FF:OFF      suppress all form feeds except at end of report
  100.     /L or /NL    turn listing on or off (/Nx turns switch off)
  101.     /M or /NM    turn map on or off
  102.     /T or /NT    turn tableaux on (I&L) or off
  103.     /A or /NA    turn analysis on or off
  104.  
  105.     C>LP100 EXAMPLE.LP /O:PRN /NL /NM /NT /NA would send output to the printer
  106.     and turn off the switches regardless of the declarations in EXAMPLE.LP.
  107.  
  108.  
  109.     SEE ALSO: OUTPUT:, INTEGER:, TZERO:, LISTING:, MAP:, TABLEAU:, ANALYSIS:
  110. ■ COMMENTS
  111.  
  112.     COMMENTS are used in LP100's input file when circumstances dictate that
  113.     an explanation should be used to describe an item that is not readily
  114.     apparent.  They may appear anywhere except on the TITLE: line.
  115.  
  116.     To include comments in the input file, begin the comment with an asterisk.
  117.     All characters following the * to the end of that line are skipped.
  118.     E.g.,
  119.  
  120.     * LP data file for BUDGETING 1990 MODEL A1B.
  121.  
  122.     VAR: 233    * the constraints & variables were developed
  123.     LTE: 35     *   jointly by the OR & MIS departments
  124.     GTE: 55     *
  125.     EQU: 22
  126.  
  127.  
  128.  
  129.  
  130.  
  131.     SEE ALSO: END:
  132. ■ KEYWORDS
  133.  
  134.     Keywords are the means by which the user declares the problem to LP100.
  135.     Some keywords, such as those that instruct LP100 on the specifications
  136.     of the problem, are required while some are optional.  Optional keywords
  137.     instruct LP100 to alter its programmed procedures to user specifications.
  138.  
  139.     All keywords in LP100 end with a colon.
  140.  
  141.     TITLE: Trial MX01                           * this is optional
  142.      and,
  143.     VAR: 52  LTE: 22  GTE: 44  EQU:  0          * these are required
  144.      and,
  145.     FUNCTION: MAX:  59.03 VAR1 + 35.57 VAR2     * these are required
  146.  
  147.     The part up to MAX: (or MIN:) is the declarative portion.  The
  148.     part after is the problem definition portion.
  149. ■ - TITLE:
  150.  
  151.     TITLE: is an optional keyword.  Its purpose is to allow the user to
  152.     specify the title used for each page heading.
  153.  
  154.     NOTE: Only the first 48 characters following TITLE: will be used.
  155.  
  156.     The keyword NAME: may be used interchangably with TITLE:, e.g.,
  157.  
  158.     TITLE: Operations Research Planning Model 20A
  159.      or,
  160.     NAME: Operations Research Planning Model 20A
  161.  
  162.     If TITLE: or NAME: is not used, the input filename is used by default.
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.     SEE ALSO: KEYWORDS
  171. ■ - OUTPUT:
  172.  
  173.     OUTPUT: is an optional keyword.  Its purpose is to allow the user to
  174.     specify which device the output is to be sent.
  175.  
  176.     To send the output to disk, indicate the filename after OUTPUT:, e.g.,
  177.     OUTPUT: C:\OR\B90\MODEL20A.OUT
  178.  
  179.     In registered versions, output in LOTUS 1-2-3 format is done by specifying
  180.     a filename extension of WKS, e.g., OUTPUT: C:\123\MODEL20A.WKS
  181.  
  182.     NOTE: Only the analysis and solution sections are in 1-2-3 format; the
  183.           listings, map, and tableaux are in ASCII format and will be
  184.           overwritten if there are no errors in the data file.
  185.  
  186.     To send the output directly to the printer use PRN.  PRN is a
  187.     device name that DOS recognizes as the printer, e.g., OUTPUT: PRN
  188.  
  189.     If OUTPUT: is not used, the input filename.OUT is used by default.
  190.  
  191.  
  192.     SEE ALSO: KEYWORDS, LINE OPTIONS
  193. ■ - LISTING:
  194.  
  195.     LISTING: is an optional keyword.  Its purpose is to allow the user to
  196.     specify if listings of the objective function and constraints are to be
  197.     output.
  198.  
  199.     The listing numbers each objective function variable, showing its name
  200.     and coefficient and whether the objective is to maximize or minimize the
  201.     function.  For each constraint, its name, matrix row position, and the
  202.     coefficient and name of the non-zero variables and the value of the RHS
  203.     is given.
  204.  
  205.     If the RHS of a constraint is negative, an N precedes its name.  It will
  206.     have been multiplied through by -1 and the type changed if an inequality.
  207.  
  208.     To activate the listing, use YES.  For no listing use NO.  E.g.,
  209.  
  210.     LISTING: YES    * If LISTING: is not used, NO is used by default.
  211.  
  212.  
  213.  
  214.     SEE ALSO: KEYWORDS, LISTING SECTION, LINE OPTIONS
  215. ■ - MAP:
  216.  
  217.     MAP: is an optional keyword.  Its purpose is to allow the user to specify
  218.     if a mapping of the initial matrix is to be output.
  219.  
  220.     The map is shown in condensed form with variable names output vertically
  221.     and the constraint names along the left.  For each matrix position a
  222.     symbol is used to indicate in which range that value is.  For instance,
  223.     all zero elements show as blanks, all one elements as 1, greater than 1
  224.     but less than 10 as W, and so on.  Atop each map page a legend is
  225.     displayed for easy interpretation of the map symbols.
  226.  
  227.     To activate the mapping, use YES.  For no mapping use NO.  E.g.,
  228.  
  229.     MAP: YES    * If MAP: is not used, NO is used by default.
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.     SEE ALSO: KEYWORDS, MAP SECTION, LINE OPTIONS
  237. ■ - TABLEAU:
  238.  
  239.     TABLEAU: is an optional keyword.  Its purpose is to allow the user to
  240.     specify if tableaux are to be output.
  241.  
  242.     The tableau that is output is of the last iteration completed.  The
  243.     objective function variables and values are listed.  The variables in the
  244.     current basis along with their row elements and RHSs follow.  A Z follows
  245.     the objective function evaluation and an R follows each of the RHS values.
  246.  
  247.     To activate tableau output of the initial and last tableaux only,
  248.     use YES, or I&L.  To output all tableaux, use ALL.  E.g.,
  249.  
  250.     TABLEAU: YES    * or TABLEAU: I&L
  251.      or, for all,
  252.     TABLEAU: ALL    * If TABLEAU: is not used, NO is used by default.
  253.  
  254.  
  255.  
  256.  
  257.  
  258.     SEE ALSO: KEYWORDS, TABLEAU SECTION, LINE OPTIONS
  259. ■ - ANALYSIS:
  260.  
  261.     ANALYSIS: is an optional keyword.  Its purpose is to allow the user to
  262.     specify if an analysis of the solution is to be output.
  263.  
  264.     The analysis is divided into two summaries.
  265.  
  266.     In the variable summary, each variable name, alternate optima check,
  267.     activity level, shadow price, input coefficient, and range over which the
  268.     input coefficient may vary without altering the solution set is given.
  269.     Also shown is the variable ENTERING the basis when this range is exceeded.
  270.  
  271.     In the constraint summary, each name, type, unused capacity/excess
  272.     demand, shadow price, input RHS, and range over which the RHS may
  273.     vary without altering the solution set is given.  Also shown is the
  274.     variable EXITING the basis when this range is exceeded.
  275.  
  276.     To activate analysis output, use YES.  For no analysis, use NO.  E.g.,
  277.  
  278.     ANALYSIS: YES   * If ANALYSIS: is not used, YES is used by default.
  279.  
  280.     SEE ALSO: KEYWORDS, ANALYSIS SECTION, LINE OPTIONS
  281. ■ - BIG-M:
  282.  
  283.     BIG-M: is an optional keyword.  Its purpose is to allow the user to
  284.     specify the objective function coefficient given to artificial variables.
  285.  
  286.     LP100 uses the BIG-M improved SIMPLEX algorithm.  Starting the SIMPLEX
  287.     algorithm requires an artificial variable for the GTE: with the
  288.     largest RHS and one for each EQU: constraint.  To ensure that the
  289.     algorithm removes these as quickly as possible from the basis, a very
  290.     large value is given it.  BIG-M: allows the user to specify this value.
  291.  
  292.     NOTE: In minimization problems, values in the objective function are
  293.           interpreted as contributions to cost.  Thus, absolute values should
  294.           be used, i.e., 37.6667 MAT123 for the contribution to cost of MAT123.
  295.  
  296.     To specify BIG-M: use the absolute value after the keyword. E.g.,
  297.  
  298.     BIG-M: 1000000  * If BIG-M: is not used, 1,000,000 is used by default.
  299.                     * 1D+006 may be used instead of 1000000.
  300.  
  301.  
  302.     SEE ALSO: KEYWORDS, VARIABLES, ARTIFICIAL
  303. ■ - TZERO:
  304.  
  305.     TZERO: is an optional keyword.  Its purpose is to allow the user to
  306.     specify a tolerance value for zero.
  307.  
  308.     LP100, like most computer software, deals with numbers in a finite
  309.     precision.  In repeated manipulations of numbers that have been truncated
  310.     to a specific precision, round-off errors may occur.  TZERO: allows for
  311.     this somewhat in critical areas by forcing the algorithms to interpret
  312.     very small values near 0.00 as 0.00.
  313.  
  314.     LP100 uses IEEE double precision floating-point numbers.  With an 80x87
  315.     math coprocessor, very fast and precise computations are made.  If an
  316.     80x87 is not installed, software emulation is used.
  317.  
  318.     To specify TZERO: use the absolute value after the keyword.  E.g.,
  319.  
  320.     TZERO: 1D-012   * If TZERO: is not used, 1D-012 is used by default.
  321.                     * .000000000001 may be used instead of 1D-012.
  322.                     * If INTEGER: is on, .000001 is used unless /Z: is used.
  323.  
  324.     SEE ALSO: KEYWORDS, INTEGER:, LINE OPTIONS
  325. ■ - INTEGER:
  326.  
  327.     INTEGER: is an optional keyword.  Its purpose is to allow the user to
  328.     specify that an all-integer solution is to be sought.
  329.  
  330.     LP100 uses the cutplane algorithm to solve an all-integer problem.  This
  331.     requires all RHS values to be integer. The maximum number of cutplanes that
  332.     will be used to find a solution is to follow the keyword INTEGER:. The
  333.     range is from 0 to 99. If the maximum number of cutplanes is reached, LP100
  334.     exits and uses the current solution.
  335.   
  336.     NOTE: If the cutplane technique is going to find a solution, it generally
  337.            does so quickly.
  338.           The range analysis will not be valid since it is calculated for
  339.            continuous ranges.  EQU constraints cannot be analyzed.
  340.           The memory requirement increases by one constraint and variable
  341.            for each cutplane requested.
  342.           Because rounding errors are more pronounced, TZERO: is set to .00001.
  343.            This can be changed only with /Z:.  Solution cannot be guaranteed.
  344.           This feature should be used only for small problems.
  345.  
  346.     SEE ALSO: KEYWORDS, TZERO:, LINE OPTIONS
  347. ■ - VAR:LTE:GTE:EQU:
  348.  
  349.     VAR:, LTE:, GTE:, EQU: are all required keywords.  VAR: declares the
  350.     number of decision variables in the model.  LTE:, GTE:, and EQU: declare
  351.     the number of less-than-equal-to, greater-than-equal-to, and equal-to
  352.     constraints, respectively.  E.g.,
  353.  
  354.     VAR: 22
  355.     LTE: 5      * 3 of these LTE: constraints have negative RHS's
  356.     GTE: 3
  357.     EQU: 2
  358.  
  359.     NOTE: If the RHS of an LTE: or GTE: is negative, the LTE: or GTE: number
  360.           will be adjusted by LP100, e.g., there are 5 LTE:'s and 3 GTE:'s,
  361.           yet 3 LTE:'s have negative RHS's.  LP100 will transform those 3
  362.           LTE:'s to GTE:'s and adjust the LTE: number to 2 and GTE: to 6.
  363.  
  364.  
  365.  
  366.  
  367.  
  368.     SEE ALSO: KEYWORDS, OBJECTIVE FUNCTION, VARIABLES, CONSTRAINTS
  369. ■ - FUNCTION:
  370.  
  371.     FUNCTION: is a required keyword.  Its purpose is to mark the start of
  372.     the problem definition portion of the model.
  373.  
  374.     You may optionally precede FUNCTION: with OBJECTIVE, e.g.,
  375.     OBJECTIVE FUNCTION:.
  376.  
  377.     NOTE: MAX: or MIN: must immediately follow FUNCTION:.
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.     SEE ALSO: KEYWORDS, MIN:MAX:, OBJECTIVE FUNCTION, END:
  391. ■ - MIN:MAX:
  392.  
  393.     MIN: and MAX: are required keywords, though only one may be specified.
  394.     MIN: indicates to LP100 that the objective function following is a cost
  395.     function that is to be minimized, MAX: indicates that the function is a
  396.     profit function that is to be maximized.
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.     SEE ALSO: KEYWORDS, OBJECTIVE FUNCTION
  413. ■ - END:
  414.  
  415.     END: is an optional keyword.  Its purpose is to indicate the end of the
  416.     problem definition portion of the model.  Any data following END: is not
  417.     used.
  418.  
  419.     This keyword is useful if the model is to be extensively documented.  All
  420.     comments that appear before END: will slow the parsing process.
  421.     Therefore, extensive comments should appear after the END: keyword.
  422.  
  423.     NOTE: END: must have nothing else on its line.
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.     SEE ALSO: KEYWORDS, COMMENTS
  435. ■ OBJECTIVE FUNCTION
  436.  
  437.     The objective function contains variables and coefficients to those
  438.     variables representing its profit or cost.  The coefficients used
  439.     normally should be positive for both profit and cost problems; the values
  440.     are interpreted accordingly by specifing MIN: or MAX:.  If, however, in a
  441.     profit function a cost is associated with a variable, then that variable's
  442.     coefficient should be negative.  Likewise in a cost function, if a profit
  443.     is associated with a variable, its coefficient should be negative.
  444.  
  445.     All decision variables (number following VAR:) in the problem must
  446.     be in the objective function, including those with coefficients
  447.     equal to zero, so that LP100 can later recognize them.  E.g.,
  448.  
  449.     FUNCTION:  MAX:  10 VAR01 + 15.59 VAR02 + 0 VAR03 - VAR04 +...
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.     SEE ALSO: VAR:, VARIABLES, FUNCTION:
  457. ■ VARIABLES
  458.  
  459.     Variables are used in linear programming problems to represent an
  460.     activity of an operation.
  461.  
  462.     Only decision variables (number following VAR:) are to be input to LP100.
  463.     Slack, surplus, and artificial variables of the constraints are created
  464.     by LP100, as needed.  These variables take the name of their constraint
  465.     and are preceded by a - for slack, + for surplus, and ! for artificial
  466.     variables.
  467.  
  468.     Each variable may be up to six characters, the first being a letter, and
  469.     must be unique, as must variables within constraints, i.e., don't have
  470.     two of the same variables in the same constraint.  LP100 has excellent
  471.     error detection and reporting schemes to indicate these type errors.
  472.  
  473.     Any variable not preceded by a coefficient is given a value of 1.00.
  474.  
  475.     NOTE: Do not use + or - in a variable name nor use E or D alone
  476.           as a variable name (it would then be interpreted as a number).
  477.  
  478.     SEE ALSO: OBJECTIVE FUNCTION, SLACK, SURPLUS, ARTIFICIAL, ERRORS
  479. ■ CONSTRAINTS
  480.  
  481.     Constraints are used in linear programming problems to represent
  482.     limitations to the objective function.
  483.  
  484.     For each less-than-equal-to (LTE) constraint, LP100 adds to the objective
  485.     function a slack variable that is named as the constraint, preceded by
  486.     a -, and has a coefficient of 0.  For each GTE constraint, a surplus
  487.     variable is added, preceded by a +, with a coefficient of 0.  In addition,
  488.     one artificial variable is added for the GTE with the largest RHS,
  489.     preceded by a ! and a coefficient of BIG-M.  For each EQU, an artificial
  490.     variable, preceded by a ! and a coefficient of BIG-M, is added.
  491.  
  492.     The number of each type of constraint is indicated in the declaration
  493.     portion (LTE:, GTE:, EQU:).  Constraints may be entered in any order, but
  494.     LTE, GTE, EQU is recommended.  Each constraint is named (as the variables
  495.     are), needs to include only the non-zero variables, and end with the RHS
  496.     value preceded by the corresponding relational operator (<=, >=, =).
  497.     E.g., CON029  5X11 -X22 <= 5000.
  498.  
  499.  
  500.     SEE ALSO: VARIABLES, SLACK, SURPLUS, ARTIFICIAL
  501. ■ - SLACK
  502.  
  503.     For each LTE constraint in the linear programming problem, LP100 adds a
  504.     slack variable.  This slack variable is to represent the amount of unused
  505.     capacity.  If, for instance, the total number of hours available for use
  506.     of a machine is 280 per month, then if in the optimal solution the total
  507.     hours for that machine is 260, then 20 hours is unused, or slack.
  508.  
  509.     This slack capacity has an associated shadow price which indicates the
  510.     rate of change of the value of the objective function when the available
  511.     resource (capacity) varies.  This shadow price is valid only over the
  512.     range of optimality for that variable.  If one unit more were available,
  513.     profit would increase (cost would decrease) by the shadow price; if one
  514.     less unit were available, then profit would decrease (cost increase).  A
  515.     shadow price of zero is given to a slack variable in the final solution
  516.     and also to any alternate optima.
  517.  
  518.     A slack variable is named for its constraint, is preceded by a -, and has
  519.     an objective function coefficient of 0.
  520.  
  521.  
  522.     SEE ALSO: CONSTRAINTS, SHADOW PRICE
  523. ■ - SURPLUS
  524.  
  525.     For each GTE constraint in the linear programming problem, LP100 adds a
  526.     surplus variable.  This surplus variable is to represent the amount in
  527.     excess of demand.  If, for instance, the total number of desks needed by
  528.     contract is 100 per month, then if in the optimal solution, the total
  529.     desks to be produced that month is 105, an excess, or surplus, or 5 desks
  530.     exists, relative to the contract constraint.
  531.  
  532.     This surplus demand has an associated shadow price which indicates the
  533.     rate of change of the value of the objective function when the requirement
  534.     (demand) varies.  This shadow price is valid only over the range of
  535.     optimality for that variable.  If one unit more were required, profit
  536.     would increase (cost would decrease) by the shadow price; if one less unit
  537.     were required, then profit would decrease (cost increase).  A shadow price
  538.     of zero is given to a surplus variable in the final solution and also to
  539.     any alternate optima.
  540.  
  541.     A surplus variable is named for its constraint, is preceded by a +, and
  542.     has an objective function coefficient of 0.
  543.  
  544.     SEE ALSO: CONSTRAINTS, SHADOW PRICE
  545. ■ - ARTIFICIAL
  546.  
  547.     For each EQU constraint in the linear programming problem, LP100 adds an
  548.     artificial variable.  For the GTE constraint with the largest RHS, LP100
  549.     adds an artificial variable.  The other GTE constraints are temporarily
  550.     transformed into LTE constraints by multipling through by -1.  This is a
  551.     requirement for starting the SIMPLEX algorithm.  If there are no GTE
  552.     constraints, a dummy artificial variable is added, nonetheless.
  553.  
  554.     An artificial variable is named for its constraint, is preceded by a !,
  555.     has an objective function coefficient of BIG-M and, if in the final
  556.     solution, must have an activity level of zero.
  557.  
  558.     NOTE: If an artificial variable of a redundant equality constraint occurs
  559.           in the solution with an activity level of zero, the sensitivity
  560.           analysis and shadow prices may have been grossly misstated.
  561.           Therefore, it is suggested that those equality constraints with
  562.           artificial variables in the final solution (indicated by a !) be
  563.           removed from the model or changed to a GTE and the model run again.
  564.  
  565.  
  566.     SEE ALSO: DEGENERATE, ALTERNATE OPTIMA, CONSTRAINTS, BIG-M:
  567. ■ DISPLAY SCREEN
  568.  
  569.     Date, time, coprocessor status(87 or mu)/speed index(PC=1.0), and
  570.     available memory remaining are shown on top line.
  571.  
  572.     The FILES In/Out display the rightmost 20 characters of the filenames.
  573.  
  574.     OPTIONS display the status of the output switches.  If degeneracy is
  575.     detected, DEGENERATE is displayed to the right of BIG-M.
  576.  
  577.     INTEGER, BIG-M, and TZERO are displayed.
  578.  
  579.     Constraint and variable counts are displayed.
  580.  
  581.     The SIMPLEX STATUS indicates the time the SIMPLEX algorithm was entered
  582.     and its estimated finish.  Iterations equals SIMPLEX pivots.  Elapsed time
  583.     is actual time spent in SIMPLEX (which excludes tableau output and cutplane
  584.     formulation).  PROFIT EVALUATION is the function value at the current
  585.     iteration.
  586.  
  587.     FILE DISPOSITION lists files in queue.  The status of the current file is
  588.     continually displayed.
  589. ■ OUTPUT
  590.  
  591.     The output may be sent either to a disk file or directly to a printer.
  592.     Output may include the problem definition listings, a condensed matrix
  593.     map, tableaux, and solution analysis in addition to the final solution.
  594.  
  595.     ASCII output is formatted to 132 columns and a page break is generated
  596.     for each page with appropriate section headings.  Beginning each output
  597.     are the necessary printer control codes for the 132 column output and 88
  598.     lines/page.  Ending each output are the codes to restore the printer to
  599.     normal.  These codes are EPSON compatible printer codes and work with the
  600.     vast majority of dot-matrix printers. (Not the IBM Graphics Printer - the
  601.     page length command differs.  Use line option /PL:OFF for 66 lines/page.)
  602.  
  603.     Disk output may be edited by any ASCII text editor, or imported to word
  604.     processor programs.  Registered versions of LP100 can directly output
  605.     the analysis and solution sections in LOTUS 1-2-3 WKS format.
  606.  
  607.     NOTE: Make sure that sufficient disk space is available if output is
  608.           directed to disk - especially a 360Kb floppy.
  609.  
  610.     SEE ALSO: KEYWORDS, SPREADSHEET, LPEDIT.COM, LINE OPTIONS
  611. ■ - LISTING SECTION
  612.  
  613.     The listing section is the LP100 interpretation of the data file.  The
  614.     data in this section is the actual data used by the program.  This
  615.     ensures that the correct data has been received by LP100.
  616.  
  617.     If LISTING: has been requested then the objective type (maximization
  618.     or minimization), the number of variables, and then the variables and
  619.     coefficients are displayed, 4 per line.  The constraints follow.  For
  620.     each of the constraints, the name, row position in the initial tableau,
  621.     coefficient and name for non-zero variables is output as is the relational
  622.     operator (<=, >=, =) and RHS.  If the RHS was negative, an N precedes this.
  623.  
  624.     If LP100 detects an error, such as a duplicate variable name, and listing
  625.     has been requested, then the error message is output at the point of the
  626.     error.  If no listing has been requested, the error message alone is
  627.     output.
  628.  
  629.  
  630.  
  631.  
  632.     SEE ALSO: LISTING:, ERRORS
  633. ■ - MAP SECTION
  634.  
  635.     The map section contains a condensed listing of the initial matrix
  636.     including the decision variables and constraints.  Atop each map section
  637.     page, a legend of the symbols used is shown.  The map heading which
  638.     displays vertically the variable names follows.  The objective function
  639.     and variable symbols are next, and for each constraint, its type, name,
  640.     and initial variable coefficients, plus RHS value, are shown.
  641.  
  642.     The map is useful for debugging.  At a glance it can show most wildly-off
  643.     data entries, as well as positional type errors.
  644.  
  645.     NOTE: If output to a printer, the map should extend no more than the
  646.           columns available with the printer.  Printers with 132 columns can
  647.           print up to 60 variables/line before the following data wraps to
  648.           the next line.  Many text editors allow column widths of 512
  649.           characters or more.  With such an editor, the map can be displayed
  650.           without the confusing wrap-around.
  651.  
  652.  
  653.  
  654.     SEE ALSO: MAP:, TABLEAU SECTION
  655. ■ - TABLEAU SECTION
  656.  
  657.     The tableau section contains the objective function, its evaluation, the
  658.     basic variables, and the matrix coefficients at that particular tableau.
  659.     Either the initial and last tableaux, or all tableaux, may be output,
  660.     depending on TABLEAU:.  The tableaux can be used for debugging.  It is a
  661.     detailed version of the matrix map, and is available at every iteration,
  662.     whereas the map is available for the initial tableau only.  It also can
  663.     display all the variables without wrap-around problems since it formats
  664.     the output for 8 variables per line, using as many lines as are necessary.
  665.  
  666.     For ease of spotting, a Z follows the objective function evaluation, and
  667.     an R follows every RHS.
  668.  
  669.     The SIMPLEX algorithm as implemented in LP100 always solves the problem
  670.     as a maximization type.  Minimization problems have the original objective
  671.     function multiplied through by -1.  This will in no way affect the outcome.
  672.     It is mentioned here so that the user understands the label MAXIMIZE at
  673.     the beginning of each tableau.
  674.  
  675.  
  676.     SEE ALSO: TABLEAU:, MAP SECTION
  677. ■ - ANALYSIS SECTION
  678.  
  679.     The analysis section contains a wealth of information that the user will
  680.     find extremely useful.  This section is divided into two sections, the
  681.     variable summary, and the constraint summary.
  682.  
  683.     Within the variable summary for each variable, an indication is given if
  684.     that variable is an alternate optima, the activity level of that variable
  685.     (blank if not in the solution), its shadow price, and a sensitivity
  686.     analysis (or range of optimality) of the input coefficient.  This ranging
  687.     indicates the lower and upper values that the input coefficient may take,
  688.     everything else remaining the same, and not alter the solution set
  689.     (activities and levels of the solution).  Where a range is exceeded, the
  690.     name of the variable ENTERING the basis is given.  Further iterations may
  691.     be necessary.
  692.  
  693.     In the constraint summary for each constraint, its type, amount of slack
  694.     (surplus), shadow price, and range of optimality for the RHS value is
  695.     given.  Where a range is exceeded, the name of the variable EXITING the
  696.     basis is given.  Further iterations may be needed.
  697.  
  698.     SEE ALSO: ALTERNATE OPTIMA, ACTIVITY LEVEL, SHADOW PRICE, UNUSED CAPACITY,
  699.               EXCESS DEMAND, RANGE ANALYSIS, ARTIFICIAL
  700. ■ - SOLUTION SECTION
  701.  
  702.     The solution section is the bottom line of the linear programming problem.
  703.     It indicates a set of variables and activity levels that optimizes the
  704.     objective function given the constraints.
  705.  
  706.     The evaluation of the objective function evaluation is the first entry in
  707.     this section and equals the optimal profit or cost.  Each of the solution
  708.     variables, its associated activity level, input coefficient, and extended
  709.     amount (of profit or cost) follow.
  710.  
  711.     NOTE: The objective function activity level represents the optimal value
  712.           of the profit function (maximize) or cost function (minimize).  It
  713.           will normally have a positive value - a cost function should be
  714.           interpreted as having this much cost.  Each of the extended amounts
  715.           are likewise representing profit or cost.
  716.  
  717.     NOTE: There should be no artificial variables (!) in the solution set
  718.           unless the activity level of that variable is zero.  If positive,
  719.           the problem is considered infeasible.
  720.  
  721.     SEE ALSO: ARTIFICIAL, OBJECTIVE FUNCTION
  722. ■ ALTERNATE OPTIMA
  723.  
  724.     ALTERNATE OPTIMA, or ALT OPT, indicates that a variable not in the
  725.     solution set was qualified to be so.  Its shadow price will necessarily be
  726.     zero.  To force this variable into the solution set, scan over to the
  727.     range analysis for that variable.  Altering that variable's input to
  728.     exceed that range by a small amount will cause the alternate variable to
  729.     most likely enter the solution (solve the problem again).  Additionally,
  730.     rearranging variable or constraint order may cause the alternate to enter
  731.     the solution.  Best, though, is to use a GTE inequality at the level
  732.     required for that variable.
  733.  
  734.     If the LP problem is found to be unbounded, the variable that is
  735.     responsible is indicated by UNB in the ALT OPT column.
  736.  
  737.     NOTE: If after the first run, you wish to FORCE an alternate optimum into
  738.           the solution, DO NOT use an equality constraint.  Instead, use a >=
  739.           inequality.  E.g., X22 is ALT OPT - use CONADD X22 >= 50 as a new
  740.           constraint, not CONADD X22 = 50.
  741.  
  742.  
  743.     SEE ALSO: DEGENERATE, SHADOW PRICE, RANGE ANALYSIS, ARTIFICIAL
  744. ■ ACTIVITY LEVEL
  745.  
  746.     Activity level is the value that a variable is to take in order to achieve
  747.     the optimal profit (or cost).  Blank activity levels should be interpreted
  748.     as being zero.
  749.  
  750.     The activity level of FUNCTION in the solution section should be
  751.     interpreted as the optimal profit or cost evaluation of the objective
  752.     function.  It is normally positive.
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.     SEE ALSO: VARIABLE SECTION, SOLUTION SECTION, OBJECTIVE FUNCTION
  766. ■ SHADOW PRICE
  767.  
  768.     Shadow prices fall into two categories.
  769.  
  770.     One category indicates the rate of change in the objective function
  771.     evaluation if an activity that is not in the solution set is introduced in
  772.     the solution anyway.  This marginal cost represents the amount by which
  773.     that activity, or variable, is 'too expensive' to be included in the
  774.     solution set.  This category is attributable to the decision variables
  775.     in the VARIABLE SUMMARY.
  776.  
  777.     The other category indicates the rate of change in the objective function
  778.     evaluation when the RHS value of a constraint changes.  This marginal cost
  779.     represents the amount by which the objective function value will vary with
  780.     changes in the RHS.  This category is attributable to the constraints
  781.     (and the slack and surplus variables in the VARIABLE SUMMARY) in the
  782.     CONSTRAINT SUMMARY.
  783.  
  784.     Shadow prices are valid only over that variable/constraint's range of
  785.     optimality.
  786.  
  787.     SEE ALSO: ANALYSIS SECTION, RANGE ANALYSIS, ARTIFICIAL
  788. ■ UNUSED CAPACITY
  789.  
  790.     The unused capacity in the constraint summary of the analysis section
  791.     represents the amount of left-over resource for that LTE constraint.  It
  792.     is included in the solution set as a slack variable.
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.     SEE ALSO: EXCESS DEMAND, SLACK
  810. ■ EXCESS DEMAND
  811.  
  812.     The excess demand in the constraint summary of the analysis section
  813.     represents the amount of over-produced requirement for that GTE
  814.     constraint.  It is included in the solution set as a surplus variable.
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.     SEE ALSO: UNUSED CAPACITY, SURPLUS
  832. ■ RANGE ANALYSIS
  833.  
  834.     Range analysis, also called sensitivity analysis, gives the user useful
  835.     information on the sensitivity of the data used in the problem.  Since
  836.     accurate data may be expensive to obtain, a model using the best available
  837.     data can be used initially.  The analysis section can then be used to
  838.     determine which data are the most sensitive.  These can then be further
  839.     researched.
  840.  
  841.     Range analysis is performed on each of the variables and constraints.  For
  842.     each variable, its input coefficient is analyzed to see over which range
  843.     of values it may take while not altering the solution set, everything else
  844.     remaining the same.  Likewise for each constraint, except its RHS value is
  845.     analyzed.
  846.  
  847.     Additionally, the variable ENTERING (variable EXITING for constraints) the
  848.     basis (solution set) when a range is exceeded is shown.  This variable may
  849.     or may not be part of the final solution set, since additional iterations
  850.     of the simplex algorithm may be needed.
  851.  
  852.  
  853.     SEE ALSO: SOLUTION SECTION, ARTIFICIAL
  854. ■ DEGENERATE
  855.  
  856.     If there are redundant constraints in a problem, it is possible that a
  857.     degenerate solution may develop (if so, DEGENERATE will be displayed on
  858.     the screen.)  Degeneracy in itself does not pose any problems, usually.
  859.     It may, however, lead to a problem known as cycling.  Cycling, once
  860.     developed, causes the computer code to endlessly cycle with no
  861.     improvement in the objective function.  Fortunately, this seldom
  862.     occurs with real-world problems.  Altering the order of constraints
  863.     or variables usually corrects this problem, should it ever occur.
  864.  
  865.     Another problem associated with degeneracy is when an ALT OPT variable
  866.     is forced into a succesive LP100 solution set by using an equality (=)
  867.     constraint.  This constraint will necessarily be redundant.  Rather,
  868.     use an inequality (>=).  Otherwise, the sensitivity analysis and shadow
  869.     prices may be grossly misstated.  This problem is easily identified:
  870.     one, an artificial(!) variable(s) will be in the solution set (at zero)
  871.     and two, a shadow price(s) will be grossly misstated (by BIG-M).  At
  872.     this point, the equality constraint(s) with its artificial (!) in the
  873.     solution should be removed or changed to an inequality (>=), and rerun.
  874.  
  875.     SEE ALSO: DISPLAY SCREEN, ARTIFICIAL, ALTERNATE OPTIMA
  876. ■ ABORTING
  877.  
  878.     Pressing Esc will have the following effect on LP100.  If LP100 is:
  879.  
  880.     PARSING DECLARATIONS, or
  881.     PARSING OBJECTIVE FUNCTION, or
  882.     PARSING CONSTRAINTS, or
  883.     OUTPUTING SOLUTION then pressing Esc will end the current problem, or if:
  884.  
  885.     OUTPUTING MAP, or
  886.     OUTPUTING TABLEAU, or
  887.     OUTPUTING ANALYSIS then pressing Esc will skip that particular section and
  888.     continue, otherwise, if LP100 is:
  889.  
  890.     FINDING FEASIBLE SOLUTION, or
  891.     ADDING CUTPLANE, or
  892.     OPTIMIZING then pressing Esc will cause LP100 to complete the current
  893.     simplex iteration as if it had found an optimal solution.
  894.  
  895.     Also available is an immediate abort key: <Ctrl><F1>.  Upon pressing this
  896.     key combination, the entire LP100 session is immediately aborted to DOS.
  897.     SEE ALSO: ERRORS
  898. ■ SPREADSHEET
  899.  
  900.     LP100 allows the user to use LOTUS 1-2-3 or Symphony as a tool to create
  901.     LP100 data files.  1-2-3 versions through 2.01 and Symphony through 1.1
  902.     can be directly read by LP100.  Future versions of these spreadsheets may
  903.     or may not produce compatible file formats.  If a version later than those
  904.     above is used and LP100 reports an unknown LOTUS file format, then try
  905.     changing the filename extension from WKS, WK1, WRK or WR1 to WKX.  This
  906.     instructs LP100 to disregard the format code of the file.  If this should
  907.     not produce correct results, then 'print' the spreadsheet to an ASCII file.
  908.  
  909.     If the OUTPUT: specifies that output should be sent to a file with an
  910.     extension of WKS, then LP100 will format the analysis and solution sections
  911.     in LOTUS 1-2-3 version 1A format.  This file can be read by many
  912.     spreadsheet programs, not just those of LOTUS.  The listings, matrix map,
  913.     and tableaux will also be output, but in ASCII format.  If there are no
  914.     errors, this ASCII output will be overwritten by the analysis and solution
  915.     sections in WKS format.
  916.  
  917.     NOTE: LOTUS 1-2-3 WKS output is functional only in registered versions.
  918.  
  919.     SEE ALSO: EXAMPLE, LPEDIT.COM
  920. ■ LPEDIT.COM
  921.  
  922.     To put a linear program in LP100 compatible form requires an ASCII text
  923.     editor.  Many word processors also allow their output to be in ASCII and
  924.     even some spreadsheets programs can 'print' to an ASCII file.
  925.  
  926.     Included with the LP100 package is a full-screen text editor that allows
  927.     basic text editing.  To edit a new file, include the new filename on the
  928.     command line after LPEDIT, or, use an existing one to edit an old file.
  929.     E.g., C>LPEDIT EXAMPLE.LP
  930.  
  931.     Commands are issued via the F keys and are displayed on the last line.
  932.     The maximum file size is 64Kb.  Maximum width of a line is 248 characters.
  933.     The keypad keys are used to position the cursor and <Ctrl> left/right-arrow
  934.     is used to pan left and right.  A minimum of 131K of free RAM is needed by
  935.     the editor.
  936.  
  937.     NOTE: The F3-PRINT key is used to print marked text only.
  938.  
  939.  
  940.  
  941.     SEE ALSO: LPDEMO.EXE, SPREADSHEET
  942. ■ LPDEMO.EXE
  943.  
  944.     This program will guide you step-by-step in the creation and solution
  945.     of EXAMPLE.LP.  Just type C>LPDEMO.
  946.  
  947.     The program is set to advance to the next step after specific time
  948.     intervals indicated by a countdown timer at the lower-right of the
  949.     LPEDIT screen, but may be user-stepped by pressing a key.
  950.  
  951.     Pressing <Esc> in the first two screens only will exit the program
  952.     early.
  953.  
  954.     The program requires that COMSPEC (usually COMMAND.COM) be accessible, &
  955.     that LP100.EXE be in PATH or the current directory, and that EXAMPLE.LP
  956.     be in the current directory.  If these conditions are not met then a
  957.     limited demo is executed.
  958. ■ ERRORS
  959.  
  960.     See the following screens for error information.
  961. ■ - FILE
  962.  
  963.     File errors occur when LP100 is unable to access either the input data
  964.     file or create the output file.  These type errors cause LP100 to abort
  965.     to the next file in the queue.
  966.  
  967.     FILE NOT FOUND indicated file was not found
  968.     CANNOT OPEN INPUT indicated file cannot be opened (bad name)
  969.     CANNOT OPEN OUTPUT indicated file cannot be opened (bad name)
  970. ■ - DECLARATION
  971.  
  972.     Declaration errors occur when LP100 is unable to properly format the model
  973.     as given.  Since an output channel may not have been assigned, error
  974.     reporting is done on the disposition line of the display screen.  If a
  975.     single error was detected, the error itself, followed by its code, is
  976.     listed on this line.  If, however, more than one error was detected, the
  977.     error message *** MULTIPLE DECLARATION ERRORS is listed followed by a code
  978.     indicating the errors.  LP100 then aborts to the next file in the queue.
  979.     The error codes are:
  980.  
  981.     00000001 VAR: NOT FOUND          In the case of multiple errors,
  982.     00000010 LTE: NOT FOUND          combinations of these codes will
  983.     00000100 GTE: NOT FOUND          be output, e.g., 00001001 means
  984.     00001000 EQU: NOT FOUND          that VAR: and EQU: were not found
  985.     00010000 FUNCTION: NOT FOUND     in the LP data file.
  986.     00100000 MAX: or MIN: NOT FOUND
  987.     01000000 UNKNOWN CHARACTER IN DECLARATION
  988.  
  989.  
  990.  
  991.     SEE ALSO: KEYWORDS
  992. ■ - OBJECTIVE FUNCTION
  993.  
  994.     Objective function errors occur when LP100 is unable to properly read and
  995.     interpret the objective function.  Since an output channel will have been
  996.     made by this point, the error report is sent to the output. The display
  997.     screen will show the error message *** OBJECTIVE FUNCTION ERROR and the
  998.     error code and LP100 aborts to the next file in the queue.  The error
  999.     codes are:
  1000.  
  1001.     00000001 FORMULATION BAD NEAR VARIABLE  too many operators (+/-)
  1002.     00000010 UNKNOWN VARIABLE #   indicated character/variable not expected
  1003.     00000100 DUPLICATE VARIABLE # indicated variable used more than once
  1004.  
  1005.     Multiple errors are NOT detected - only the first.
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.     SEE ALSO: OBJECTIVE FUNCTION
  1014. ■ - CONSTRAINT
  1015.  
  1016.     Constraint errors occur when LP100 is unable to properly read and interpret
  1017.     a constraint.  Since an output channel will have been made by this point,
  1018.     the error report is sent to the output.  The display screen shows the
  1019.     error message *** CONSTRAINT ERROR and the error code and LP100 aborts to
  1020.     the next file in the queue.  The error codes are:
  1021.  
  1022.     00000001 FORMULATION BAD too many operators (+/-)
  1023.     00000010 UNKNOWN VARIABLE indicated variable not in FUNCTION:
  1024.     00000100 DUPLICATE NAME indicated name used more than once
  1025.     00001000 ILLEGAL CONSTRAINT NAME indicated name is illegal
  1026.     00010000 LTE: count does not match declaration
  1027.     00100000 GTE: count does not match declaration
  1028.     01000000 EQU: count does not match declaration
  1029.     10000000 MATRIX ALLOCATION OVERRUN count of LTE: + GTE: does not match
  1030.  
  1031.     Multiple errors are possible with the additional possibility of erroneous
  1032.     errors being indicated (...count does not...) since parsing is stopped
  1033.     after the first error.
  1034.  
  1035.     SEE ALSO: CONSTRAINTS
  1036. ■ - 123 READ
  1037.  
  1038.     When input is taken from a LOTUS file the following errors may occur.
  1039.     These cause LP100 to abort to the next file in the queue.
  1040.  
  1041.     FILE NOT FOUND indicated file was not found
  1042.     CANNOT OPEN INPUT indicated file cannot be opened (bad name)
  1043.     UNKNOWN OR CORRUPT LOTUS FILE format code unknown
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.     SEE ALSO: SPREADSHEET
  1058. ■ - 123 WRITE
  1059.  
  1060.     When ouput is sent to a WKS file the following errors may occur.
  1061.     These cause LP100 to abort to the next file in the queue.
  1062.  
  1063.     LOTUS OUTPUT FUNCTIONAL ONLY IN REGISTERED LP100 VERSIONS
  1064.     CANNOT OPEN OUTPUT indicated file cannot be opened (bad name)
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.     SEE ALSO: SPREADSHEET
  1080. ■ - INFEASIBLE MODEL
  1081.  
  1082.     An INFEASIBLE MODEL error occurs if, at the time SIMPLEX algorithm has
  1083.     found an optimal solution, an artificial variable remains in the basis
  1084.     (solution set) at a positive activity level.  The next file is begun.
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.     SEE ALSO: ARTIFICIAL
  1102. ■ - UNBOUNDED MODEL
  1103.  
  1104.     An UNBOUNDED MODEL error occurs if, at anytime in the SIMPLEX algorithm, a
  1105.     variable can be introduced without bound.  The unbounded variable is
  1106.     identified by UNB in the ALT OPT column.  The next file is begun.
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.     SEE ALSO: ALTERNATE OPTIMA
  1124. ■ - ABORT
  1125.  
  1126.     An ABORT error occurs if the user presses <Esc> to abort the current
  1127.     problem that LP100 is solving or if the user presses <Ctrl><F1>
  1128.     to immediately abort the LP100 session to the system.
  1129.  
  1130.     NOTE: If Esc is pressed in certain LP100 routines, that and only that
  1131.           routine is exited early.  Output will indicate this if it occurs.
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.     SEE ALSO: ABORTING
  1146. ■ - RUN-TIME
  1147.  
  1148.     A RUN-TIME error may occur under certain circumstances.  These are rare
  1149.     and in such an event, the LP100 session is aborted to DOS.
  1150.  
  1151.                  6 NUMBER OVERFLOW      24 DEVICE TIMEOUT
  1152.                  7 OUT OF MEMORY        25 DEVICE FAULT
  1153.                 11 DIVISION BY ZERO     27 OUT OF PAPER
  1154.                 14 OUT OF NEAR SPACE    61 DISK FULL
  1155.  
  1156.             52 to 76 are mostly hardware/disk related errors.
  1157.  
  1158.     If a run-time error continues to occur see REPORT BUGS TO...
  1159.  
  1160.     In addition to the RUN-TIME error number, the MODULE and LEVEL at which
  1161.     the error occured are indicated on the disposition line.
  1162.  
  1163.     Run-time errors 7 and 14 are handled specially by LP100.  The message
  1164.     << OUT OF MEMORY >> will be displayed on the disposition line with
  1165.     no MODULE or LEVEL report available.  This generally means that the
  1166.     problem you have specified is too large.
  1167.  
  1168. ■ REPORT BUGS TO...
  1169.  
  1170.     Though LP100 has been through significant testing, minor bugs may occur.
  1171.     If you experience any problems in using LP100 write a complete description
  1172.     of the problem using BUG REPORT FORM form as a guide.  Also include a
  1173.     listing of the model, and if possible, include the model on a 5 1/4" 360K
  1174.     floppy.  Send this to:
  1175.  
  1176.                          Cornel Huth
  1177.                          ATTN: LP100 v2.10 REPORT
  1178.                          6402 Ingram Rd.
  1179.                          San Antonio, TX  78238
  1180.  
  1181.     If necessary, call (512)684-8065 (7PM-9PM CENTRAL TIME)
  1182.  
  1183.     Assistance can be given ONLY in the use of LP100, NOT with the
  1184.     linear programs/models that need to be formulated.  For such help,
  1185.     consult with those experienced in operations research, or seek such
  1186.     information from the library of any good college.
  1187.  
  1188.  
  1189.     SEE ALSO: BUG REPORT FORM
  1190. ■ - BUG REPORT FORM
  1191.  
  1192.  
  1193.      Program: LP100  Ver: 2.10  S/N:_______-__ Have you registered? __
  1194.  
  1195.         Name: ________________________________________________________
  1196.         Addr: ________________________________________________________
  1197.               ________________________________________________________
  1198.               ________________________________________________________
  1199.        Phone: (     ) ______ - _________ ext. ______ (only if collect)
  1200.  
  1201.  
  1202.     Describe the problem, the circumstances of its happening, and
  1203.     any errors reported by LP100 or the system.  Include a description of
  1204.     the hardware and operating system and any other software loaded in
  1205.     memory.
  1206.  
  1207.  
  1208.  
  1209.     Any suggestions for improvement will be appreciated.
  1210.  
  1211.     SEE ALSO: REPORT BUGS TO...
  1212. ■ SPECIFICATIONS                  Version 2.10
  1213.  
  1214.     MINIMUM REQUIREMENTS: 256K IBM-PC or compatible, DOS 2.1, one floppy drive.
  1215.  
  1216.     CHKDSK must report at least 215000 bytes free to start LP100.
  1217.  
  1218.     The maximum problem size depends on available memory.  Use this formula
  1219.     to APPROXIMATE the number of K bytes needed by LP100 as displayed in the
  1220.     upper-right corner of the display screen at start-up (at 99%).
  1221.  
  1222.      {[(VAR:+LTE:+GTE:+EQU:+2)*(LTE:+GTE:+EQU:+1)*8]+32000}/1024 = K RAM needed
  1223.  
  1224.     With 440K RAM free, over 48,000 total matrix elements are possible (this
  1225.     is equal to 400 variables and 100 constraints).
  1226.  
  1227.     The LP100 programs were compiled with the Microsoft QuickBASIC 4.0 compiler
  1228.     and total approximately 6200 lines of source code.
  1229.  
  1230.     The 8087/80287 math coprocessor is used if available.
  1231.  
  1232.     This version of LP100 uses BIOS for video output and has been used in the
  1233.     DoubleDOS multitasking environment running in the background at >= 50%.
  1234. ■ INCLUDED FILES LIST             Version 2.10
  1235.  
  1236.     README          initial instructions & information
  1237.     LP100.EXE       linear programming optimizer        161561 bytes in size
  1238.     LPDEMO.EXE      demonstration program                45077 bytes
  1239.     LPHELP.EXE      help program                         45347 bytes
  1240.     LPEDIT.COM      full-screen ASCII text editor         3000 bytes
  1241.     LP100.HLP       data file used by the help program
  1242.     LP100.TXT       LP100 User Guide in ASCII format
  1243.  
  1244.     BATCHRUN.BLP    ASCII batch file example
  1245.  
  1246.     EXAMPLE.LP      ASCII LP data file (simple example)
  1247.     BUDGETSS.LP     ASCII LP data file (budget example)
  1248.     INTEGER.ILP     ASCII LP data file (all-integer example)
  1249.  
  1250.     EXAMPLE.WKS     WKS spreadsheet LP data file (similar to EXAMPLE.LP)
  1251.     XOUT.WKS        WKS spreadsheet LP data output from EXAMPLE.WKS
  1252.  
  1253.     NOTE: Be sure to make a working copy of this disk.
  1254. ■ SHAREWARE
  1255.  
  1256.     Shareware is a means that software authors have of releasing their
  1257.     product without the overhead costs of marketing and packaging.  This
  1258.     gives users the option of obtaining a quality product at a truly
  1259.     reasonable price.  It also may be the only means of obtaining software
  1260.     that is not available elsewhere, at any price.
  1261.  
  1262.     What this means is that users can use the product on a trial basis
  1263.     without any obligation to purchase the software.  Generally, users may
  1264.     freely distribute the product to others provided that any licensing
  1265.     agreement or stipulations that the author has specified be followed.
  1266.     The shareware concept does not allow a user to continue using the product
  1267.     after the trial period unless the license agreement has been fulfilled or
  1268.     otherwise been given permission by the author.
  1269.  
  1270.     ***************************** NOTICE **********************************
  1271.  
  1272.     All LP100 *.EXE programs in the INCLUDED FILES LIST are the sole
  1273.     property of Cornel Huth and are Copyright 1988,1989 by Cornel Huth.
  1274.  
  1275.     SEE ALSO: LICENSE AGREEMENT, REGISTRATION FORM
  1276. ■ - LICENSE AGREEMENT
  1277.  
  1278.     USAGE:  LP100 may be used on a trial basis for 30 days.  After this, the
  1279.     user promises to fulfill this license agreement or discontinue using LP100.
  1280.     By using LP100 you agree to abide by this LICENSE AGREEMENT.
  1281.  
  1282.     FULFILLMENT:  A limited license for using LP100 on a single computer may
  1283.     be purchased for $45.00.  Site licenses are $180.00.  After receiving
  1284.     payment, a current, registered version and receipt of payment is sent.
  1285.  
  1286.     DISTRIBUTION:  LP100 may be distributed without the author's permission
  1287.     only if the following three stipulations are followed:
  1288.  
  1289.     1.  The LP100 package must be distributed complete, including ALL files
  1290.         listed in INCLUDED FILES LIST.
  1291.  
  1292.     2.  The LP100 package CANNOT be sold for profit.  Recovery of costs
  1293.         associated with distribution is allowed (NO PROFIT).
  1294.  
  1295.     3.  ONLY the SHAREWARE version of the LP100 package may be distributed.
  1296.  
  1297.     SEE ALSO: SHAREWARE, REGISTRATION FORM
  1298. ■ - REGISTRATION FORM
  1299.  
  1300.     Name of licensee: ________________________________________________
  1301.                             (to appear on title screen and output)
  1302.  
  1303.     Amount paid: $ ____________ (1-$45.00, 2-90.00, 3-135.00, 4>180.00)
  1304.  
  1305.     Comments:  _________________________________________________________
  1306.                _________________________________________________________
  1307.  
  1308.      Contact:  _____________________ Phone:(   ) ____ - ______ ext. ____
  1309.  
  1310.                Would you like to be added to our mailing list? _________
  1311.  
  1312.      Mail to:  _________________________________________________________
  1313.                _________________________________________________________
  1314.                _________________________________________________________
  1315.  
  1316.      Send payment to:  Cornel Huth
  1317.                        ATTN: LP100 v2.10 REGISTRATION
  1318.                        6402 Ingram Rd.
  1319.                        San Antonio, TX  78238
  1320. ■ TRADEMARKS
  1321.  
  1322.  * Microsoft and QuickBASIC are registered trademarks of Microsoft Corp.
  1323.  * Lotus, 1-2-3, Symphony are registered trademarks of Lotus Development Corp.
  1324.  * VP-PLANNER is a registered trademark of Paperback Software International
  1325.  * IBM is a registered trademark of International Business Machines Corp.
  1326.  * DoubleDOS is a registered trademark of SoftLogic Solutions, Inc.
  1327.  * ScanSoft, LP100, LP OPTIMIZER are trademarks of ScanSoft, Inc.
  1328. ________________________________________________________________________________
  1329.  
  1330.  
  1331.                               SUPPORT SHAREWARE.
  1332. ■ ENDOFHELP terminate help items
  1333.